Refining hierarchies in object-oriented models

ABSTRACT

Embodiments are directed to refining hierarchies in object-oriented models. A method includes providing a business object model in the form of an object-oriented model having one or more members with multiple distinct verbalizations and identifying distinct verbalizations of a given business object model member. The method also includes reviewing existing rules of the business object model to produce mappings of the distinct verbalizations and any attributes or operations used in conjunction with the distinct verbalizations of members of the business object model and analysing the mappings to identify patterns of use of the distinct verbalizations. The method further includes categorising a distinct verbalization as a superclass or subclass.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from GB Patent Application No.1216166.7, filed on Sep. 11, 2012, the entire contents of which areincorporated herein by reference.

BACKGROUND

The present disclosure relates to the field of business rules managementsystems. In particular, the present disclosure relates to refininghierarchies in object-oriented models of business rules managementsystems.

Business Rules Management Systems (BRMS) are used in a Business ObjectModels (BOM) to define the underlying structure of business object rulesthat are being executed. The BOM may contain verbalization informationthat is used by a rule editor system to allow for natural languagebusiness rules to be constructed.

By verbalizing BOM members in this way and allowing users to definetheir own verbalizations, BOM members can be referred to by multipleidentifiers, or verbalizations. For example, an import/export companymay deal with both “importers” and “exporters”, which have manyattributes and operations in common. One way of representing thisrelationship would be to have several verbalizations associated with asingle “customer” BOM entry, as both importers and exporters are“customers” of the company. Doing so allows business users to writerules in natural language and use whichever verbalization makes sense inthe given context.

Although in many situations this mapping of multiple verbalizations to asingle BOM member is acceptable, there are occasions when themany-to-one verbalization to BOM member relationship can cause issues.For example, a method or attribute may be added that is only applicableto an “importer,” but as a result of the verbalization, it would bepossible to construct a nonsensical rule, such as: “If the date of thelast import of the exporter is earlier than . . . ”

Although technically correct, it is semantically incorrect as anexporter would not have a history of imports. To most business users, noproblem would be perceived, even though they would be able to writerules that made little sense and would produce invalid results allowingthe problem to go undetected for long periods.

SUMMARY

Exemplary embodiments include a computer implemented method for refininghierarchies in object-oriented models. The method includes providing abusiness object model in the form of an object-oriented model having oneor more members with multiple distinct verbalizations and identifyingdistinct verbalizations of a given business object model member. Themethod also includes reviewing existing rules of the business objectmodel to produce mappings of the distinct verbalizations and anyattributes or operations used in conjunction with the distinctverbalizations of members of the business object model and analysing themappings to identify patterns of use of the distinct verbalizations. Themethod further includes categorising a distinct verbalization as asuperclass or subclass.

Exemplary embodiments also include a computer system for refininghierarchies in object-oriented models having a business object model inthe form of an object-oriented model having one or more members withmultiple distinct verbalizations. The system also includes a datagathering component having a verbalization identifying component foridentifying distinct verbalizations of a given business object modelmember. The system further includes a rule reviewing component forreviewing existing rules of the business object model to producemappings of the distinct verbalizations and any attributes or operationsused in conjunction with the distinct verbalizations of members of thebusiness object model. The system also includes an analysis componentfor analysing the mappings to identify patterns of use of the distinctverbalizations and for categorising a distinct verbalization as asuperclass or subclass.

Exemplary embodiments further include a computer program product forrefining hierarchies in object-oriented models, the computer programproduct comprising a computer readable storage medium havingcomputer-readable program code embodied therewith, the computer-readableprogram code configured to perform a method. The method includesproviding a business object model in the form of an object-orientedmodel having one or more members with multiple distinct verbalizationsand identifying distinct verbalizations of a given business object modelmember. The method also includes reviewing existing rules of thebusiness object model to produce mappings of the distinct verbalizationsand any attributes or operations used in conjunction with the distinctverbalizations of members of the business object model and analysing themappings to identify patterns of use of the distinct verbalizations. Themethod further includes categorising a distinct verbalization as asuperclass or subclass.

The described aspects of the disclosure provide the advantage ofdetermining and suggesting an optimal class hierarchy based on usagepatterns of verbalizations of a class with multiple distinctverbalizations.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Embodiments of the present disclosure will now be described, by way ofexample only, with reference to the following drawings in which:

FIG. 1 is a flow diagram of a method for refining hierarchies inobject-oriented models in accordance with an exemplary embodiment;

FIG. 2 is block diagram of a system for refining hierarchies inobject-oriented models in accordance with the an exemplary embodiment;and

FIG. 3 is a block diagram of a computer system for refining hierarchiesin object-oriented models in which an exemplary embodiment may beimplemented.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numbers may be repeated among the figures toindicate corresponding or analogous features.

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the disclosure.However, it will be understood by those skilled in the art that thepresent disclosure may be practiced without these specific details. Inother instances, well-known methods, procedures, and components have notbeen described in detail so as not to obscure the present disclosure.

Exemplary embodiments include methods and systems for analyzing theusage patterns of distinct business object model (BOM) verbalizations,including which attributes and operations are typically used with themand which are not, and refining class hierarchies for the BOM. Refiningclass hierarchies may suggest potential changes to the structure of theBOM that would prevent potentially nonsensical rules being written.

In exemplary embodiments, a BOM may be an object-oriented model usingrules which may be defined by a user, for example, using a rule editor.The described method takes an existing object-oriented model that isexplicitly mapped to a vocabulary (i.e. the BOM) and uses usage patternsof this vocabulary with respect to object hierarchy entities to refineand improve the hierarchy.

For all subsequent examples, the following hypothetical BOM will beused:

BOM Member Verbalizations Attributes Customer “the customer”,customerID, “a customer”, name, “the customers”, companyReference, “theimporter”, dateOfLastImport, “an importer”, dateOfLastExport “theimporters”, “the exporter”, “an exporter”, “the exporters”

Referring to FIG. 1, a flow diagram 100 shows an example embodiment ofthe described method. In exemplary embodiments, the method may bedivided into two aspects, a data gathering aspect which reviews existingrules and stores its results for later analysis, and an analysis aspectwhich analyses these results and suggests an optimal class hierarchybased on its findings.

As shown at block 101, the method includes providing a BOM to berefined. Next, as shown at block 102, all distinct verbalizations of agiven BOM member are identified, as these may be treated as candidatesfor separate classes. In exemplary embodiments, the identification maybe accomplished using simple language processing.

In the given example, customer, importer and exporter would beidentified as distinct verbalizations and variations on them (i.e. “thecustomer”, “a customer”, “the customers”) would be treated as the sameby the method as they are referring to the same thing.

Once the identification is complete, all existing rules in the systemmay be reviewed to search for patterns of verbalization usage acrossthem, as shown at block 103. In exemplary embodiments, the review may beconducted on all rules in the production environment managed by theBRIMS. For example, these may be deployed rule-apps in a RuleTeam/Execution Server as these would be representative of the rules usedby the company.

As shown at block 104, analysis of each rule is performed to produce aseries of statistics and a mapping between verbalizations and attributesand operations used with them. The analysis may use a mapping betweendistinct verbalizations, and the attributes and operations used inconjunction with them may be generated. In one embodiment, this may becarried out using tuples. For example, a series of 3-tuples of the form(a1, a2, a3) may be used where:

a1=The distinct verbalization being used;

a2=The attribute or operation being used in conjunction with a1;

a3=The number of occurrences this specific combination of a1 and a2.

For example, if the following rule was analyzed, “If the name of thecustomer is equal to “Big Shipping Company” . . . ”; the following tuplewould be produced, (customer, name, 1).

As shown at block 105, analysis may then be carried out of thestatistics for usage patterns. In the described embodiment, the tuplesmay be analyzed to identify those attributes that are commonly used withparticular verbalizations and those that are rarely or never used inconjunction with others.

For example, if the following 3-tuples are analyzed, (customer, name,70), (importer, name, 58), (exporter, name, 61). The method wouldidentify that the attribute “name” appears to be relevant in all casesand in the event that “Customer”, “Importer”, and “Exporter” are splitup into separate classes, then “name” should be in the superclass sothat all subclasses inherit it.

In another example, conversely, if the following tuples are analyzed,(customer, dateOfLastImport, 0), (importer, dateOfLastImport, 82),(exporter, dateOfLastImport, 0), the method would identify that theattribute “dateOfLastImport” is only relevant to the verbalization“Importer” which would now be considered a specialization (i.e.subclass) of “Customer”.

As shown at block 106, once analysis of all theverbalizations/attributes is complete, the candidate classes (i.e. thedistinct verbalizations) are each placed in a category: In exemplaryembodiments, candidate superclasses are those that are used inconjunction some attributes but have no attributes that are unique tothem (i.e. no specialization). In exemplary embodiments, candidatesubclasses are those that are used in conjunction with all of theattributes of a candidate superclass but also have attributes that areonly used in conjunction with them (i.e. a specialization).

Distinct verbalizations of BOM members may be considered to be potentialsub/superclasses. Different attributes may be associated with thesub/superclasses in the new hierarchy based on analysis of theverbalization usage patterns. In the example, “Customer” would beidentified as a candidate superclass as it is used in conjunction withattributes “customerID”, “name”, and “companyReference”, none of whichare unique to “Customer” alone. “Exporter” and “Importer” would becandidate subclasses as they are both used in conjunction with all ofthe attributes that the candidate superclass (“Customer”) uses inaddition to being used in conjunction with attributes that are unique tothem (“dateOfLastImport” in the case of “Importer” and“dateOfLastExport” for “Exporter”).

If, as in the above example, a superclass and at least one subclass areidentified, then the method may present this suggestion to the useralong with an explanation of the reasoning behind the suggestion, asshown at block 107. The user may then be able to implement the optimalclass hierarchy.

In the given example, the method may suggest the following BOMstructure:

BOM Member Subclass of Verbalizations Attributes Customer “thecustomer”, customerID, “a customer”, name, “the customers”companyReference Importer Customer “the importer”, dateOfLastImport “animporter” “the importers” Exporter Customer “the exporter”,dateOfLastExport “an exporter”, “the exporters”

With this new structure, it is no longer possible to write semanticallyincorrect rules such as “If the date of the last import of the exporteris earlier than . . . ”, thus solving the problem using only analysis ofpre-existing data (i.e. the rules). In exemplary embodiments, to preventerroneous/unfounded suggestions, the method may only suggest potentialchanges once it has reviewed a reasonable number of rules. For example,it would not suggest a new subclass after only observing <10 rules thatuse a particular verbalization/attribute.

In addition, to save unnecessary processing, the method may ignoreclasses with only a single distinct verbalization as these would nottypically be candidates for splitting into multiple classes and themethod described above would not be applicable to them.

Referring to FIG. 2, a block diagram of an exemplary embodiment of thedescribed system 200 is shown. The system 200 includes a business objectmodel (BOM) 210 in the form of an object-oriented model. The BOM 210includes multiple BOM members 211 which may each have multipleverbalizations 212 and attributes 213. The BOM 210 may comprise rules214 which apply to the BOM members 211 using the verbalizations 212 andattributes 213.

In exemplary embodiments, a hierarchy refining component 220 includes adata gathering component 230 for gathering data from existing usagepatterns of BOM 210 verbalizations 212 of a class or BOM member 211. Thehierarchy refining component 220 may also comprise an analysis component240 for analysing the results of the gathered data and suggestingoptimal class hierarchies.

In exemplary embodiments, the data gathering component 230 may comprisea verbalization identifying component 231 for identifying all distinctverbalizations 212 of a given BOM member 211 which may be treated ascandidates for separate classes. The verbalization identifying component231 may comprise a language processing component. The data gatheringcomponent 230 may also comprise a rule reviewing component 232 forreviewing the existing rules 214 of the BOM 210. The rule reviewingcomponent 232 may comprise a rule threshold component 233 fordetermining a threshold number of reviewed rules before analysis maytake place.

In exemplary embodiments, the rule reviewing component 232 may alsocomprise a mapping generating component 234 for mapping between distinctverbalizations, and the attributes and operations used in conjunctionwith them. In one embodiment, the mapping generating component 234 maygenerate a series of tuples for analysis. For example, a series of3-tupes of the form (a1, a2, a3) may be used where:

a1=The distinct verbalization being used;

a2=The attribute or operation being used in conjunction with a1;

a3=The number of occurrences this specific combination of a1 and a2.

The analysis component 240 may analyze the mappings (for example, theseries of tuples) generated by the mapping generating component 234. Theanalysis component 240 may comprise a common attribute identifyingcomponent 241 for identifying common attributes in tuples. An attributeanalysis component 242 may group the verbalizations based on the commonattributes or based on a lack of common attributes.

The analysis component 240 may comprise a superclass component 243 and asubclass component 244 for grouping the candidate classes (i.e. thedistinct verbalizations) into a superclass or a subclass category.

The analysis component 240 may also comprise a suggestion presentingcomponent 245 for presenting superclass and subclass suggestions to auser, thereby providing a suggested class hierarchy. An explanationpresenting component 246 may be provided for explaining the reasoningbehind the superclass and subclass suggestions.

Referring to FIG. 3, an exemplary system for implementing aspects of thedisclosure comprises a data processing system 300 suitable for storingand/or executing program code comprising at least one processor 301coupled directly or indirectly to memory elements through a bus system303. The memory elements may comprise local memory employed duringactual execution of the program code, bulk storage, and cache memorieswhich provide temporary storage of at least some program code in orderto reduce the number of times code must be retrieved from bulk storageduring execution.

The memory elements may comprise system memory 302 in the form of readonly memory (ROM) 304 and random access memory (RAM) 305. A basicinput/output system (BIOS) 306 may be stored in ROM 304. System software307 may be stored in RAM 305 comprising operating system software 308.Software applications 310 may also be stored in RAM 305.

The system 300 may also comprise a primary storage means 311 such as amagnetic hard disk drive and secondary storage means 312 such as amagnetic disc drive and an optical disc drive. The drives and theirassociated computer-readable media provide non-volatile storage ofcomputer-executable instructions, data structures, program modules andother data for the system 300. Software applications may be stored onthe primary and secondary storage means 311, 312 as well as the systemmemory 302.

The computing system 300 may operate in a networked environment usinglogical connections to one or more remote computers via a networkadapter 316.

Input/output devices 313 may be coupled to the system either directly orthrough intervening I/O controllers. A user may enter commands andinformation into the system 300 through input devices such as akeyboard, pointing device, or other input devices (for example,microphone, joy stick, game pad, satellite dish, scanner, or the like).Output devices may comprise speakers, printers, etc. A display device314 is also connected to system bus 303 via an interface, such as videoadapter 315.

1. A computer implemented method for refining hierarchies inobject-oriented models, comprising: providing a business object modelcomprising one or more members with a plurality of distinctverbalizations; identifying the plurality of distinct verbalizations ofthe one or more members of the business object model; reviewing one ormore rules of the business object model to produce mappings of theplurality of distinct verbalizations and any attributes or operationsused in conjunction with the plurality of distinct verbalizations of theone or more members of the business object model; analysing the mappingsto identify patterns of use of the plurality of distinct verbalizations;and categorising each of the plurality of distinct verbalizations as asuperclass or a subclass.
 2. The computer implemented method of claim 1,further comprising generating a new class hierarchy of distinctverbalizations using the superclass and the subclass.
 3. The computerimplemented method of claim 2, further comprising associating anattribute with the superclass or the subclass in the new classhierarchy.
 4. The computer implemented method of claim 1, whereinanalysing the mappings produces a series of 3-tuples including one ofthe plurality of distinct verbalization being used, the attribute oroperation being used in conjunction with the distinct verbalizationbeing used, and the number of occurrences this specific combination ofthe attribute with the distinct verbalization being used.
 5. Thecomputer implemented method of claim 1, wherein categorising theplurality of distinct verbalization as the superclass applies to one ormore of the plurality of distinct verbalizations that are used inconjunction with some attributes but have no attributes unique to them.6. The computer implemented method of claim 5, further comprisingdetermining one or more attributes commonly used across the plurality ofdistinct verbalizations and associating a common attribute to thesuperclass.
 7. The computer implemented method of claim 1, whereincategorising one or more of the plurality of distinct verbalizations asa subclass applies to verbalizations that are used in conjunction withall of the attributes of a candidate superclass but also have attributesthat are only used in conjunction a subset of the plurality of distinctverbalizations.
 8. The computer implemented method of claim 7,comprising determining attributes only used for one verbalization andassociating a single attribute with a subclass.
 9. The computerimplemented method of claim 1, wherein reviewing existing rules furthercomprises producing mappings only after a threshold number of rules hasbeen reviewed.
 10. The computer implemented method of claim 1, whereinclasses with only a single distinct verbalization are disregarded. 11.The computer implemented method of claim 1, wherein identifying distinctverbalizations of a given business object model member uses languageprocessing.
 12. The computer implemented method of claim 1, wherein theexisting rules of the business object model comprise rules in aproduction environment managed by a business rules management system.13. The computer implemented method of claim 1, further comprising:presenting a suggested superclass or a suggested subclass to a user as anew proposed class hierarchy.
 14. The computer implemented method ofclaim 13, further comprising: providing an explanation of the suggestedsuperclass or the suggested subclass to the user based on the analysis.15. A computer system for refining hierarchies in object-oriented modelscomprising a business object model comprising one or more members withmultiple distinct verbalizations and a data gathering componentcomprising: a verbalization identifying component configured foridentifying distinct verbalizations of the one or more members of thebusiness object model; and a rule reviewing component configured forreviewing existing rules of the business object model to producemappings of the distinct verbalizations and any attributes or operationsused in conjunction with the distinct verbalizations of the one or moremembers of the business object model; and an analysis componentconfigured for analysing the mappings to identify patterns of use of thedistinct verbalizations and for categorising a distinct verbalization asa superclass or a subclass.
 16. The computer system of claim 15, whereinthe analysis component is configured for generating a new classhierarchy of distinct verbalizations using the categorised superclassesand subclasses.
 17. The computer system of claim 15, wherein the rulereviewing component produces a series of 3-tuples of the including adistinct verbalization being used, the attribute or operation being usedin conjunction with the distinct verbalization being used, and thenumber of occurrences this specific combination of the distinctverbalization being used and the attribute or operation being used inconjunction with the distinct verbalization being used.
 18. The computersystem of claim 15, wherein the rule reviewing component comprises arule threshold component configured for determining if a thresholdnumber of rules have been reviewed and producing mappings only if it isdetermined that the threshold number has been exceeded.
 19. The computersystem of claim 15, further comprising: a suggestion presentingcomponent configured for presenting a suggested superclass or asuggested subclass to a user as a new proposed class hierarchy.
 20. Acomputer program product for refining hierarchies in object-orientedmodels, the computer program product comprising a computer readablestorage medium having computer readable program code embodied therewith,the computer readable program code comprising computer readable programcode configured for: providing a business object model comprising one ormore members with a plurality of distinct verbalizations; identifyingthe plurality of distinct verbalizations of the one or more members ofthe business object model; reviewing one or more rules of the businessobject model to produce mappings of the plurality of distinctverbalizations and any attributes or operations used in conjunction withthe plurality of distinct verbalizations of the one or more members ofthe business object model; analysing the mappings to identify patternsof use of the plurality of distinct verbalizations; and categorisingeach of the plurality of distinct verbalizations as a superclass or asubclass.